import { fileURLToPath, URL } from 'node:url'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx'
import Components from 'unplugin-vue-components/vite';
import { VantResolver } from '@vant/auto-import-resolver';
import postCssPxToRem from 'postcss-pxtorem'
// 引入 vite-plugin-cdn-import 插件
import { Plugin as importToCDN } from 'vite-plugin-cdn-import'

export default defineConfig({
  plugins: [
    vue(),
    vueJsx(),
    Components({
      resolvers: [VantResolver()],
    }),
    // 生产环境 CDN引入配置
    importToCDN({
      modules: [
        {
          name: "vue", 
          var: "Vue", 
          path: "https://cdn.jsdelivr.net/npm/vue@3.3.4/dist/vue.global.min.js",
        },
      ],
    }),
  ],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url)),
      // '_c': fileURLToPath(new URL('./src/components', import.meta.url))
    },
  },
  build:{
    brotliSize: false, // 禁用构建的brotli压缩大小报告
    minify: true, // 开启压缩
    rollupOptions:{
      treeshake: true, // 消除未使用的代码
      output:{
       manualChunks(id) {
        //第三方包处理
        if (id.includes('node_modules')) {
            return 'ventor'
        }
    },
      },
    }
  },
  css:{
    preprocessorOptions:{
      scss: {
        //全局使用scss变量
        additionalData: `@import "@/assets/style/mixin.scss";`
      }
    },
    //移动端适配插件
    postcss:{
      plugins:[
        postCssPxToRem({
          rootValue:37.5,
          propList:['*'],
        })
      ]
    }
  },
  define: {
    'process.env': {}
  },
  server: {
    port: 9527,
    proxy: {
      /* '/api': {
        target: 'https://mock.ihx.me/mock/5baf3052f7da7e07e04a5116/antd-pro', //mock API接口系统
        ws: false,
        changeOrigin: true,
        pathRewrite: {
          '/servicebio': ''  //默认所有请求都加了servicebio前缀，需要去掉
        }
      }, */
      '/servicebio': {
        target: 'http://196.28.221:8180/servicebio', // 请求本地 需要servicebio后台项目
        //  target: 'http://121.199.3.75:8180/servicebio', // 请求本地 需要servicebio后台项目
        // target: 'http://119.3.107.239/servicebio', //请求本地 需要servicebio后台项目
        // target: 'http://139.9.161.208/servicebio',
        ws: false,
        changeOrigin: true,
      },
      '/printVersion': {
        target: 'https://127.0.0.1:18086/', // 把/printVersion 替换为https://127.0.0.1:18086/
        //  target: 'http://121.199.3.75:8180/servicebio', // 请求本地 需要servicebio后台项目
        // target: 'http://119.3.107.239/servicebio', //请求本地 需要servicebio后台项目
        // target: 'http://139.9.161.208/servicebio',
        // ws: false,
        changeOrigin: true,
        pathRewrite: {
          '/printVersion': '', //默认所有请求都加了/printVersion前缀，需要去掉
        },
      },
    },
  }
})
